The present invention relates generally to a welding-type system and, more particularly, to a system and method for controlling multiple processes in a welding-type system using a refined controller architecture including a field programmable gate array (FPGA) based processor.
Welding-type systems, such as welders, plasma cutters, and induction heaters, often include an inverter-based power source that is designed to condition high power to carrying out a desired process. These welding-type power sources, often referred to as switched-mode power supplies, can take many forms. For example, they may include a half-bridge inverter topology, a full-bridge inverter topology, a forward-converter topology, a flyback topology, a boost-converter topology, a buck-converter topology, and combinations thereof.
Regardless of the specific inverter topology employed, referring to FIG. 1, an welding-type power source system 10 typically includes a variety of components, such as a pre-regulator/filter 12, a first rectifier 14, an inverter 16, and a second rectifier 18 that is connected to an output 20. Additionally, some power source systems 10 may include a second inverter 22 in order to provide alternating current (AC) welding-type power. While FIG. 1 is a simplified overview of common components of an welding-type power source system 10, it is contemplated that additional components may be included, such as filtering components, feedback and control loops, and transformers or other converters designed to provide a desired output power characteristic.
The system 10 typically designed to be connected to a supply of power 24 that provides AC power, for example, as received from a utility grid over transmission power lines 26. However, the system 10 may be an engine-driven welding-type system that includes an integrated generator that acts as a source of power. The AC power from the supply of power 20 is conditioned by the pre-regulator/filter 12 and delivered to the rectifier 14 to convert the AC power to direct current (DC) power. Specifically, the rectifier 14 includes a plurality of switches that rectify the AC power and deliver it to a DC bus 28 connected to the inverter 16. The inverter 16 includes a plurality of switching devices (e.g., IGBTs or other semiconductor switches) that are positioned between the positive and negative buses of the DC bus 28. The switches are opened and closed in specific combinations to sequentially generate pulses that are delivered to the second rectifier 18 and, ultimately, to the output 20 with the desired voltage and current characteristics. In this regard, the above-described welding-type power source system 10 is specifically designed for delivering high-power to the output 20 to drive a process such as welding, plasma cutting, and induction heating.
In the most simplistic form, welding-type power sources include at least one active switching device, the inverter 16. As described above, these welding-type power source systems 10 often include multiple, actively-controlled systems, including the pre-regulator/filter 12 and, if included, the second inverter 22. The switching characteristics of the inverter 16 are controlled by processor 30 to, along with the second rectifier 18, produce the desired output power having the desired voltage and current characteristics. In particular, the processor 30 controls the switching characteristics of the inverter 16 based on the desired power output characteristics selected by an operator. Furthermore, the processor 16 receives feedback, generally indicated via feedback lines 32, 34, to actively control the inverter 16 during the welding-type process. For example, the processor 30 receives feedback regarding the actual power characteristics (actual current, peak current, actual voltage, peak voltage, power, and the like) delivered to the output 20 and adjusts the control of the inverter 16 to provide the desired power characteristics to the output 20 overtime. For example, feedback 32, 34 is provided to the processor 30 to effectuate a desired welding-type process, such as metal inert gas (MIG), tungsten inert gas (TIG), and the like and even to effectuate a specific subset of a welding-type process, such as a pulsed-MIG process or a spray-transfer process.
In addition to the actively controlled inverter 16, the pre-regulator/filter 12 is actively controlled by another processor 36 to regulate and condition the power received from the source of power 24, which may or may not provide consistent power characteristics. To this end, the processor 36 is specifically designed to control the pre-regulator/filter 12 to perform power conditioning, such as power factor control (PFC). Furthermore, if a second inverter 22 is provided for AC welding-type processes, a third processor 38 is included to control the output inverter 22 to provide the desired AC power characteristics to perform an AC welding-type process.
Although, as illustrated in FIG. 1, in traditional welding-type systems, each actively controlled process has a dedicated processor, these processors 30, 36, 38 and the associated resources (memory, and the like) are often referred to collectively as a controller 40. To this end, while it is generally accurate to refer to a single controller architecture 40 as controlling the processes of a welding-type power source, it is more accurate to show the “controller 40” as including a number of specially-configured, dedicated processing devices, each assigned to controlling a specific task during the welding-type process.
Traditionally, these processors 30, 36, 38 are microprocessors, similar to those used in consumer desktop computing devices. Recently, some of the processors 30, 36, 38 have been replaced with more specialized processors, generally referred to as digital signal processors (DSP). For example, some have replaced the general microprocessor 30 used to control the primary inverter 16 with a DSP. Such configurations have been used in both welding and plasma cutting systems.
However, like microprocessors, these configurations employing DSPs dedicate a processing device to each process. That is, one microprocessor or DSP is dedicated to power conditioning (if included), primary inverter control and/or welding process control, and secondary inverter control (if included). This is because DSPs, like microprocessors, employ a “serial” architecture.
In an effort to complete more tasks per unit time, some manufacturers have reduced the time per unit task by raising the clock frequency. However, this solution has upper limits. That is, while both microprocessors and DSPs may appear to perform processing tasks in “parallel” due to high operating clock frequencies, these devices are fundamentally designed and limited to executing one specific task at any specific time.
Some processor systems have been developed that include multi- or hyper-threading architectures and dual- or multi-core architectures. These systems attempt to mimic non-serial (parallel) processing by forcing sequential programming into a divide and conquer methodology. However, this solution is limited by the ability to divide the program (for example, whether the program is “threaded”) and the ability to effectively utilize shared resources (for example, system memory, and the like).
In a further attempt to overcome this fundamental limitation of processing serialization, some processor architectures have been developed that include on-board peripherals designed to allow the “central core(s)” of the processor to off-load tasks, thus, allowing the processor to complete more tasks per unit time. However, all the tasks/programs must be first processed by the central core. Accordingly, such systems are limited by the need to have the central core “touch” each task/program in order to achieve the over-all system objectives.
In addition to these architectural limitations of the “classical” DSP processor, DSPs (and microprocessors) are the limited by the available programming languages. Specifically, in an effort to make the languages more standardized and portable, numerous compromises have been made with respect to the way data can be manipulated. One example is standardization of the sizes available for data “packets” in bits. In C-based languages, the available bits, bytes, integers, and words are loosely defined by the language and made concrete by the architecture of the processor. In a typical application, the values of each are fixed such that a bit is a single Boolean value, a byte is 8 bits, an integer is 16 bits, and. a word or “long” is 32 bits.
Under these constraints, for example, if a particular variable requires, at most, 17 bits, a word having 32 bits must be used to hold the value and the programmer must manipulate the extra 15 bits, despite being unneeded. As a further example of the architectural limitation of these processors, if a 16-bit wide internal data bus is included, the variable (which only requires, at most, 17 bits) can only be handled across two successive operations. Conversely, if a 32 bit internal bus is included to alleviate this problem, system resources are still inefficiently utilized because gates that could otherwise utilized are manipulating 8 or 16-bit values.
Therefore, it would be desirable to have a system and method for efficiently controlling multiple processes in a welding-type power source.